class Animal(object):

    def speak(self):
        print("动物的叫声")


class Cat(Animal):
    def speak(self):
        print("喵喵")

class Dog(Animal):
    def speak(self):
        print("汪汪")

def speak(object):
    object.speak()

animal = Animal()
kitty = Cat()
puppy = Dog()

# 基于多态性 在类外部新建同名函数 重构同名函数 实现
speak(animal)
speak(kitty)
speak(puppy)

# 对象实现
animal.speak()
kitty.speak()
puppy.speak()